If we receive wl_data_source.target before .send, the target would already
be cached, but we'd take no action on the new fd.
else
return FALSE;
- if (fd >= 0)
- wayland_selection->stored_selection.fd = fd;
-
- if (wayland_selection->source_requested_target == target)
+ if (wayland_selection->stored_selection.fd == fd &&
+ wayland_selection->source_requested_target == target)
return FALSE;
+ wayland_selection->stored_selection.fd = fd;
+
wayland_selection->source_requested_target = target;
if (window && target != GDK_NONE)